// Package golink 连接
package golink

import (
	"gitee.com/zhaobohan/stress-testing/model"
	"time"
)

// ReqListMany 接口分步压测
type ReqListMany struct {
	list []*model.Request
}

// getCount 获取连接
func (r *ReqListMany) getCount() int {
	return len(r.list)
}

var (
	clientList *ReqListMany
)

// init 接口分步压测示例
func init() {
	clientList = &ReqListMany{}
	// TODO::接口分步压测示例
	// 需要压测的接口参数
	clients := make([]*model.Request, 0)

	// 压测第一步
	clients = append(clients, &model.Request{
		URL:     "http://127.0.0.1:8888/", // 请求url
		Form:    "http",                   // 请求方式 示例参数:http/webSocket/tcp
		Method:  "GET",                    // 请求方法 示例参数:GET/POST/PUT
		Headers: map[string]string{},      // headers 头信息
		Body:    "",
		Verify:  "json",           // 验证的方法 示例参数:statusCode、json
		Timeout: 30 * time.Second, // 是否开启Debug模式
		Debug:   false,            // 是否开启Debug模式
		Code:    200,
	})

	// 压测第二步
	clients = append(clients, &model.Request{
		URL:     "http://127.0.0.1:9999/", // 请求url
		Form:    "http",                   // 请求方式 示例参数:http/webSocket/tcp
		Method:  "GET",                    // 请求方法 示例参数:GET/POST/PUT
		Headers: map[string]string{},      // headers 头信息
		Body:    "",
		Verify:  "json",           // 验证的方法 示例参数:statusCode、json
		Timeout: 30 * time.Second, // 是否开启Debug模式
		Debug:   false,            // 是否开启Debug模式
		Code:    200,
	})

	clientList.list = clients
	// TODO::分步压测时，注释下面一行代码
	//clientList.list = nil
}

// getRequestList 获取请求列表
func getRequestList(request *model.Request) []*model.Request {
	if len(clientList.list) <= 0 {
		return []*model.Request{request}
	}
	return clientList.list
}
